#ifndef __DALELIB_GRAPHICS_H__
#define __DALELIB_GRAPHICS_H__

#define GLUT_DISABLE_ATEXIT_HACK
#include <dalelib/graphics/glee.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/freeglut.h>
//#include <GL/glut.h>
//#include <GL/glui.h>

#include <dalelib/maths.h>

namespace dalelib
{

typedef GLuint TextureHandle;

/*** graphics utility function ***/
void drawQuad(const float _Left=0.f, const float _Right=1.f, const float _Bottom=0.f, const float _Top=1.f);
void drawGround(const float _Size, const float _TexScale=1.f);
void drawTrihedron(const v3 _Scale=v3::one);
void drawCircle(const v2 _Pos,const float _Radius,const int _Spokes=16);
void drawFilledCircle(const v2 _Pos,const float _Radius,const int _Spokes=16);
void setFog(const v3 _Colour, const float _Start, const float _End, const float _Density);
void printString(v3 _Pos,char *_String,void *_Font=GLUT_BITMAP_HELVETICA_10);
void saveScreenShot(const string _Path,const string _Suffix,const int _Index=-1);


} // namespace dalelib

#endif
